from common.models.log.AppAccessLog import AppAccessLog
from flask import request,g
from application import app,db
from common.libs.Helper import getCurrentDate
from common.models.log.AppErrorLog import AppErrorLog
import json
class LogService():
    # 添加浏览器记录
    @staticmethod
    def addAccessLog():
        target =AppAccessLog()
    #     获取当前的url地址(获取全部url)
        target.target_url = request.url
        # 当浏览器向web服务器发送请求的时候，一般会带上Referer，告诉服务器我是从哪个页面链接过来的，服务器籍此可以获得一些信息用于处理。
        target.referer_url = request.referrer
        # 远程address：remote_addr代表客户端的IP，但它的值不是由客户端提供的，由这个代理转发到网站，这样web服务器就会把remote_addr设为这台代理机器的IP。
        target.ip = request.remote_addr
        # json.dumps()：把字典转成json字符串，json.loads()：把json字符串转成字典，他们操作的都是变量（变量是存储在内存中的）\。jsonify字典转成json字符串\json.dumps() 返回的是： Content-Type:text/html \jsonify() 返回的是：Content-Type: application/json
        # to_dict():转换成字典
        target.query_params = json.dumps( request.values.to_dict())
        if 'current_user' in g and g.current_user is not None:
            target.uid = g.current_user.uid
        # 请求头，字典类型。
        target.ua = request.headers.get("User-Agent")
        # 获取时间
        target.created_time = getCurrentDate()
    #     db变量
        db.session.add(target)
        db.session.commit()
        return True



    # 添加错误记录
    @staticmethod
    def addErrorLog(content):
        #
        target=AppErrorLog()
        target.target_url = request.url
        target.referer_url = request.referrer
        target.query_params = json.dumps(request.values.to_dict())
        # 取的内容是我们当前传过来的内容
        target.content = content
        # 创建时间
        target.created_time = getCurrentDate()
        # db变量
        db.session.add(target)
        db.session.commit()
        return True